package com.cx.controller;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.UUID;

/**
 * @ClassName: Load
 * @Description: 文件上传    文件下载去百度（）
 * @Author: cx
 * @Date: 2022/10/20 15:43
 **/
@Controller
public class LoadController {

    //springmvc做文件上传  小坑resource属性必须跟前端传过来的参数名称一致
    @RequestMapping(value = "/load")
    public String load(HttpServletRequest request, MultipartFile resource) throws IOException {
        System.out.println("文件上传进来了");

        try {
            //文件准备上传到哪里去（上传到这台服务器）
            //返回它的绝对路径
            String realPath = request.getSession().getServletContext().getRealPath("/uploads/");

            //根据得到的路劲创造file对象
            File file = new File(realPath);

            //判断这个文件夹存不存在或者是不是一个文件夹
            if (!file.exists() || !file.isDirectory()) {
                //创建文件夹
                file.mkdirs();
            }

            //获取源文件得名称(上传文件名称)
            String originalFilename = resource.getOriginalFilename();

            //保证文件名称唯一  也用可以UUID
            long timestamp = new Date().getTime();
            String newFileName = timestamp + originalFilename;
            System.out.println("文件名称为"+newFileName);

            //表示将文件写到uploads下面中 newFileName文件中
            resource.transferTo(new File(realPath, newFileName));
        } catch (Exception e) {
            System.out.println("文件上传错误有异常"+e);
        }

        return "success";
    }

    //跨服务器上传
    @RequestMapping(value = "/load02")
    public String load02( MultipartFile resource) throws IOException {
        System.out.println("文件上传进来了");

        try {

            //我们得把文件上传到哪里
            String path ="http://124.223.186.81/file:///C:uploads/";

            //获取源文件得名称(上传文件名称)
            String originalFilename = resource.getOriginalFilename();

            //保证文件名称唯一 可以UUID
            long timestamp = new Date().getTime();

            String newFileName = timestamp + originalFilename;
            System.out.println("文件名称为"+newFileName);

            //创建客户端
            // 5.创建 sun 公司提供的 jersey 包中的 Client 对象
            Client client = Client.create();
            // 6.客户端去连接对象
            WebResource resource02 = client.resource(path + newFileName);

            String result = resource02.put(String.class, resource.getBytes());
            System.out.println(result);


        } catch (Exception e) {
            System.out.println("文件上传错误有异常"+e);
        }


        return "success";
    }
}
